package com.cskaoyan.javase.basic._3variable._5conversion;

/**
 * @description: 基本数据类型的强制类型转换
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 强制类型转换是什么样的?
 *      从数据类型的取值范围上讲,应该是"大到小"
 *      从代码角度上讲,强制类型转换编译器不会自动完成,而是需要程序员写额外代码完成
 *
 *      强制类型转换是"大到小",这是很危险的操作,很容易出现数据溢出,导致数据失真.所以编译器不会自动完成,需要程序员手动完成,这可以看成是对程序员的一个警示: 做强制类型转换要深思熟虑
 *      语法:
 *        需要强转成的数据类型 变量名  =  (需要强转成的数据类型)需要被强制类型转换的变量;
 *
 *
 */
public class Demo4 {
    public static void main(String[] args) {
        //double --> int
        //double a = 0.1;
        //int b = (int) a;
        //System.out.println(b);
        //
        //float c = (float) 0.1;

        int a = 128;
        byte b = (byte) a; //原码反码补码
        System.out.println(b);

        //强制类型转换快捷键
        //1. alt+回车
        //2. 在要强转的变量后面写.cast回车然后写上要强转的类型
        b = ((byte) a);


        //byte b1 = 1, b2 = 2, b;

    }
}
